分布式统计计算方法简介
背景介绍
答案当然是肯定的。与并行计算类似,分布式计算(distributed computing)的思想也来源于“分而治之”(divide-and-conquer)的策略。简单来说,对于一个大规模的统计计算问题,如果我们可以把它分成一些可以同时进行的小任务,然后让多个CPU或者计算机对它们分别进行处理,那么将会大大地减少计算时间。以一个简单的问题为例:假设有N个样本点被存储在K台局部机器(local machine)上,如何计算全样本的的平均值?很简单,我们只需让每台局部机器计算本地子样本的均值,然后把它和子样本量发送给一台中心机器(central machine,中心机器常常是K台局部机器中的一台)。中心机器接收到每个子样本的均值和样本量后,便可以通过加权平均算出全样本的均值。在这个过程中,我们把“计算全样本均值”这个任务划分成K个可同时进行的“计算子样本均值”的小任务,从而将计算时间几乎缩减成原来的1/K(如果忽略传输信息的时间)。
当然,上面的例子过于简单,实际问题往往要复杂很多。事实上,大多数时候,在分布式场景下很难直接计算基于全样本的估计量。比如在刚才的例子中,如果把平均数换成中位数,这个问题似乎就没那么简单了。因为即使我们知道每个子样本的中位数和样本量,也很难把它们组合成全样本的中位数。此外,分布式计算与传统的并行计算也有一定区别。传统的并行计算系统中,各个处理器常常是共享同一块内存的,因此能够以极快的速度进行数据的交互。然而,分布式计算框架中的各台机器往往是物理隔离的,他们仅靠网线连接在一起。因此在设计分布式算法的时候,还需要考虑到机器间进行数据通讯的时间消耗。
基于对以上这些问题的考量,在为统计问题设计分布式算法时需要权衡估计精度、通讯成本、计算时间这三个维度。虽然在分布式场景下一般很难获取基于全样本的估计量,但还是希望最终得到的分布式估计量(distributed estimator)与全样本估计量(whole sample estimator,WSE)具有十分接近的表现。一般来说,全样本估计量具有最优的估计精度,但计算时间也是最长的(数据量太大时甚至无法计算)。可是如果使用的机器过多,虽然可以大幅度降低单台机器的计算时间,但得到的分布式估计量的统计性质可能会很差。这一点通常可以通过增加机器间的数据交互来弥补,然而同时又会带来极大的通讯成本。因此,如何平衡好这三个方面对一个分布式算法来说是十分关键的。
接下来,我们根据机器间数据交互的形式将分布式计算框架分为单轮型和迭代型两大类,并分别简要叙述它们的大致思想和特点。接着以主成分分析为例,介绍了一个略有不同的分布式算法。最后对全文进行总结。
单轮型方法 (One-shot approach)
在各种分布式计算框架中,单轮型(one-shot)方法是一类较为简单直接的方法。所谓的“单轮”指的是“每台局部机器只与中心机器进行一次通讯”。单轮型方法的大致步骤如下:
单轮型方法的示意图如图1所示。可以看到,整个算法的框架较为简单。不同单轮型算法之间的区别主要在“整合局部估计量”这一步。
迭代型方法 (Iterative approach)
上一节我们简要介绍了单轮型分布式算法,这类算法具有简单易操作、通讯成本低等优点。但同时也发现,由于机器间信息交互十分有限,此类算法常常需要足够多的局部样本量来保证最终估计量的精度。这实际上限制了我们调用更多机器来缩减计算时间。因此,研究者们开始提出一些迭代型方法,打破了单轮型方法对机器数的限制。迭代型方法,顾名思义,就是指算法需要在机器间进行多轮迭代,也意味着局部机器与中心机器间会有多轮通讯。不同的迭代型算法之间可能有较大差异,但大致有如下步骤:
图2给出了迭代型方法的示意图。接下来,我们介绍比较几个比较典型的算法。
与SAE的MSE相比可以看到,一步估计具有更小的高阶误差项,因此放松了对局部样本量的需求。此外,该文章也证明了该估计量与全局MLE拥有相同的渐进分布,表明了一步估计量的有效性。
例子:主成分分析
上文提到的一些方法大多针对的是M-估计问题,即优化特定的损失函数(似然函数)来获取参数的估计。下面我们考虑一个不同的问题:如何针对分布式储存的数据进行主成分分析(principal component analysis, PCA)。主成分分析是一种非常有效的归约数据的方式,可以帮助我们简化原始数据,并保留其中的“主要因子”。PCA的核心步骤就是找到原始数据的主成分方向,而主成分方向就是数据的协方差阵的前几个特征向量。因此,我们只需对样本协方差阵做特征分解即可(或者直接对原始数据矩阵进行奇异值分解(SVD))。
由于该算法得到的主成分方向是矩阵的特征向量,因此它们的正交性得到了保证。此外,该文章也证明了当局部样本量足够多的时候,主成分方向的分布式估计与全样本估计有着相同的误差收敛速度。
总结
Gao Y, Liu W, Wang H, et al. A review of distributed statistical inference[J]. Statistical Theory and Related Fields, 2021:1-11. https://doi.org/10.1080/24754269.2021.1974158
参考文献
[1] Zhang Y, Duchi J C, Wainwright M J. Communication-efficient algorithms for statistical optimization[J]. The Journal of Machine Learning Research, 2013, 14(1): 3321-3363.
[2] Liu Q, Ihler A T. Distributed Estimation, Information Loss and Exponential Families[J]. Advances in Neural Information Processing Systems, 2014, 27: 1098-1106.
[3] Minsker S. Distributed statistical estimation and rates of convergence in normal approximation[J]. Electronic Journal of Statistics, 2019, 13(2): 5213-5252.
[4] Lee J D, Liu Q, Sun Y, et al. Communication-efficient sparse regression[J]. The Journal of Machine Learning Research, 2017, 18(1): 115-144.
[5] Huang C, Huo X. A distributed one-step estimator[J]. Mathematical Programming, 2019, 174(1): 41-76.
[6] Shamir O, Srebro N, Zhang T. Communication-efficient distributed optimization using an approximate newton-type method[C]//International conference on machine learning. PMLR, 2014: 1000-1008.
[7] Jordan M I, Lee J D, Yang Y. Communication-efficient distributed statistical inference[J]. Journal of the American Statistical Association, 2018.
[8] Wang X, Yang Z, Chen X, et al. Distributed inference for linear support vector machine[J]. Journal of machine learning research, 2019, 20.
[9] Fan J, Guo Y, Wang K. Communication-efficient accurate statistical estimation[J]. Journal of the American Statistical Association, 2021 (just-accepted): 1-29.
[10] Fan J, Wang D, Wang K, et al. Distributed estimation of principal eigenspaces[J]. Annals of statistics, 2019, 47(6): 3009.
[11] Wang F, Zhu Y, Huang D, et al. Distributed one-step upgraded estimation for non-uniformly and non-randomly distributed data[J]. Computational Statistics & Data Analysis, 2021, 162: 107265.
- END -